A network switching device, such as an Ethernet switch, includes a data plane and a control plane. The data plane is for switching packets while the control plane is for controlling operation of the device as a whole and for configuring the data plane. The data plane can include one or more packet switching devices (e.g., Application Specific Integrated Circuits designed for switching packets), ports, physical layer chips, and the like. The control plane can include a processing resource (e.g., CPU) and memory (e.g., RAM, Flash). The processing resource is connected to the data plane via a physical connection, such as a Peripheral Component Interconnect Express (PCIe) bus.
The control plane of the network switching device includes a network operating system (NOS) stored in memory and executed by the CPU. The NOS includes an operating system kernel (e.g., Linux kernel) and a protocol stack (e.g., a set of software modules to implement various networking protocols). The NOS can be accessed by a user via a command line interface. The NOS configures the data plane of the network switching device to process and forward packets received via the ports. To enable this, the NOS includes a software development kit (including a library of commands) and driver for the one or more packet switching devices in the data plane.